/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

import Model.OcurrenciaM;
import MsSQL.ConMsSQL;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Maryluz
 */
public class OcurrenciaC {
    
    public List<OcurrenciaM> listarOcurrenciaTodo( int idTienda) {
        Connection conexion = ConMsSQL.obtenerConexion();
        if (conexion != null) {
            try {
                List<OcurrenciaM> vctPrendas = new ArrayList<>();
                String sql = "SELECT idOcurrencia,CONVERT(VARCHAR,[fecha_registro],103) AS FECHA ,CONVERT(VARCHAR,[fecha_registro],108) AS Hora ,[desc_ocurrencia] fROM [SysReaDB].[dbo].[TBL_OCURRENCIA] where std_ocurrencia<>0 and idTienda="+idTienda+"  order by fecha_registro  desc,   CONVERT(VARCHAR,[fecha_registro],108) desc";

                Statement instruccionSQL = conexion.createStatement();
                ResultSet rs = instruccionSQL.executeQuery(sql);

                if (rs != null) {
                    while (rs.next()) {
                        OcurrenciaM oM = new OcurrenciaM();
                        oM.setIdOcurrencia(rs.getInt(1));
                        oM.setFechaOcurrencia(rs.getString(2));
                        oM.setHoraOcurrencia(rs.getString(3));
                        oM.setDescOcurrencia(rs.getString(4));
                        vctPrendas.add(oM);
                    }
                    return vctPrendas;
                }
                return null;
            } catch (SQLException e) {
                 System.out.print(e);
                return null;
            } catch (Exception e) {
                System.out.print(e);
                return null;
            } finally {
                try {
                    conexion.close();
                } catch (SQLException ex) {
                    System.out.print("No se puede cerrar la conexion");
                }
            }
        }
        return null;
    }
 
     
    public List<OcurrenciaM> listarOcurrenciaFecha(String fecha,int idTienda) {
        Connection conexion = ConMsSQL.obtenerConexion();
        if (conexion != null) {
            try {
                List<OcurrenciaM> vctPrendas = new ArrayList<>();
                String sql = "SELECT idOcurrencia,CONVERT(VARCHAR,[fecha_registro],103) AS FECHA ,CONVERT(VARCHAR,[fecha_registro],108) AS Hora ,[desc_ocurrencia] fROM [SysReaDB].[dbo].[TBL_OCURRENCIA] where std_ocurrencia<>0 and convert(date,fecha_registro)='"+fecha+"' and idTienda="+idTienda+" order by fecha_registro desc ,  CONVERT(VARCHAR,[fecha_registro],108) desc";

                Statement instruccionSQL = conexion.createStatement();
                ResultSet rs = instruccionSQL.executeQuery(sql);

                if (rs != null) {
                    while (rs.next()) {
                        OcurrenciaM oM = new OcurrenciaM();
                        oM.setIdOcurrencia(rs.getInt(1));
                        oM.setFechaOcurrencia(rs.getString(2));
                        oM.setHoraOcurrencia(rs.getString(3));
                        oM.setDescOcurrencia(rs.getString(4));
                        vctPrendas.add(oM);
                    }
                    return vctPrendas;
                }
                return null;
            } catch (SQLException e) {
                 System.out.print(e);
                return null;
            } catch (Exception e) {
                System.out.print(e);
                return null;
            } finally {
                try {
                    conexion.close();
                } catch (SQLException ex) {
                    System.out.print("No se puede cerrar la conexion");
                }
            }
        }
        return null;
    }
 
    
      public boolean agregarOcurrencia(OcurrenciaM ovM) {

        Connection cnn = ConMsSQL.obtenerConexion();
        try {
            if (cnn != null) {
                String sql = "{call sp_addOcurrencia(?,?)}";
                CallableStatement cs = cnn.prepareCall(sql);
                cs.setString(1, ovM.getDescOcurrencia());
                cs.setInt(2, ovM.getIdTienda());
                ResultSet rs = cs.executeQuery();
                if (rs != null) {
                    while (rs.next()) {
                        return true;
                    }
                }
                return false;
            }
        } catch (Exception e) {
            // System.out.print(e);
            return false;
        }
        return false;
    }

    public void borrarOcurrencia(OcurrenciaM oCaja) {
        Connection cnn = ConMsSQL.obtenerConexion();
        try {
            if (cnn != null) {
                String sql = "{call sp_delOcurrencia(?)}";
                CallableStatement cs = cnn.prepareCall(sql);
                cs.setInt(1, oCaja.getIdOcurrencia());
                ResultSet rs = cs.executeQuery();
                if (rs != null) {
                    while (rs.next()) {
                       
                    }
                }
                
            }
        } catch (Exception e) {
            System.out.print(e);
            
        }
       
    }

    public void actualizarOcurrencia(OcurrenciaM oCajaM) {
         Connection cnn = ConMsSQL.obtenerConexion();
        try {
            if (cnn != null) {
                String sql = "{call sp_updOcurrencia(?,?)}";
                CallableStatement cs = cnn.prepareCall(sql);
                cs.setInt(1, oCajaM.getIdOcurrencia());
                cs.setString(2, oCajaM.getDescOcurrencia());
                ResultSet rs = cs.executeQuery();
                if (rs != null) {
                    while (rs.next()) {
                       
                    }
                }
                
            }
        } catch (Exception e) {
            System.out.print(e);
            
        }
    }
    
}
